/*!
 * \file frsem.h
 *
 * \brief 数据包移位、读取操作
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.\n
 * 数据包移位、读取操作
 *
 * \version 3.0
 * \author guojq
 * \date 2016/02/02
 *
 */
#ifndef __FRSEM_H_
#define __FRSEM_H_

/*!
 * 创建进程锁信号量
 *
 * \param p_file        (IPC文件名)
 *
 * \return 进程锁ID\n
 *         -1 (失败)
 *
 */
int frsem_create(char *p_file);

/*!
 * 取得进程锁ID
 *
 * \param p_file        (IPC文件名)
 *
 * \return 进程锁ID\n
 *         -1 (失败)
 *
 */
int frsem_get(char *p_file);

/*!
 * 进程加锁
 *
 * \param i_sem_id      (进程锁ID)
 *
 * \return FR_SUCC:成功\n
 *         FR_FAIL:失败
 *
 */
int frsemaphore_lock(int i_sem_id);

/*!
 * 进程解锁
 *
 * \param i_sem_id      (进程锁ID)
 *
 * \return FR_SUCC:成功\n
 *         FR_FAIL:失败
 *
 */
int frsemaphore_unlock(int i_sem_id);

/*!
 * 进程锁释放
 *
 * \param i_sem_id      (进程锁ID)
 *
 * \return FR_SUCC:成功\n
 *         FR_FAIL:失败
 *
 */
void frsem_free(int i_sem_id);

#endif
